Implement the six #86/Option G design decisions (exclude-default, typed codecs, outer-view eq, MappingInterface facade) - #89
Merged
Conversation
- undeclared default 'raise' -> 'exclude' (loud at use, no passthrough habit; 'raise' stays as strict mode) - typed codecs: optional decoded_type/encoded_type tags on Codec + seam validation between adjacent stack layers (untagged = unchecked) - outer-view __eq__ when the spec'd surface covers getitem+iter; __hash__ None (mutable-mapping convention) - MappingInterface built-in spec + kv_interface_wrap facade (wrap_kvs-shaped kwargs over the engine; simple things stay simple) - design doc §11: open questions -> decision record (incl. question 0: split synthesis — codec wrapping compiles to the flat engine, @wrap_kvs class-decoration becomes is-a) Claude-Session: https://claude.ai/code/session_01FLZ8T5a6Y4P3u25yC1JD9R
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements the maintainer's decisions on the six open questions of
misc/docs/dol_issue86_design.md§11 (decided 2026-08-10; §11 is now a decision record):@wrap_kvsclass-decoration becomes is-a.MappingInterfacespec +kv_interface_wrap(wrap_kvs-shaped kwargs over the engine). Engine stays private.undeclared='exclude': wrap succeeds, undeclared use raises with guidance;'raise'remains as strict mode.decoded_type/encoded_typetags onCodec; adjacent stack-layer seams validated at wrap time, loud on mismatch, untagged unchecked.__eq__, no hash when the spec'd surface covers__getitem__+__iter__.__class__transparency stays off, opt-in later with Better way to control the wrapper class #5.6 new tests (45 total in the module); full suite green; 3.10 doctests verified. Still additive and private — no existing module behavior changes.
https://claude.ai/code/session_01FLZ8T5a6Y4P3u25yC1JD9R